{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Pandas\n",
    "\n",
    "Pandas is an open source library providing data analysis tools for the Python programming language. If this definition doesn't say much, I'd say you can think of Pandas for now as Python's response to spread sheets. Having that said, it is clear now why I decided to dedicate this section to Pandas, since you will be using it to create or load the data you are going to use with Scikit-learn. You will also use it to analyse and visualize the data and alter the values of columns before applying your machine learning algorithms to them."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# It's common to import pandas as pd\n",
    "\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# This is how to create a dataframe \n",
    "\n",
    "polygons_data_frame = pd.DataFrame(\n",
    "    {\n",
    "        'Name': ['Triangle', 'Quadrilateral', 'Pentagon', 'Hexagon'],\n",
    "        'Sides': [3, 4, 5, 6],\n",
    "    }\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Sides</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Triangle</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Quadrilateral</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Pentagon</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Name  Sides\n",
       "0       Triangle      3\n",
       "1  Quadrilateral      4\n",
       "2       Pentagon      5"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Showing first 3 rows of the dataframe \n",
    "\n",
    "polygons_data_frame.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Creating another dataframe\n",
    "\n",
    "polygons = {\n",
    "    'Name': [\n",
    "        'Triangle', 'Quadrilateral', 'Pentagon', 'Hexagon', 'Heptagon', 'Octagon', \n",
    "        'Nonagon', 'Decagon', 'Hendecagon', 'Dodecagon', 'Tridecagon', 'Tetradecagon'\n",
    "    ],\n",
    "    'Sides': range(3, 15, 1),\n",
    "}\n",
    "\n",
    "polygons_data_frame = pd.DataFrame(polygons)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Sides</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Triangle</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Quadrilateral</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Pentagon</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Hexagon</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Heptagon</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Octagon</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Nonagon</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Decagon</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Hendecagon</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Dodecagon</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Tridecagon</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>Tetradecagon</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             Name  Sides\n",
       "0        Triangle      3\n",
       "1   Quadrilateral      4\n",
       "2        Pentagon      5\n",
       "3         Hexagon      6\n",
       "4        Heptagon      7\n",
       "5         Octagon      8\n",
       "6         Nonagon      9\n",
       "7         Decagon     10\n",
       "8      Hendecagon     11\n",
       "9       Dodecagon     12\n",
       "10     Tridecagon     13\n",
       "11   Tetradecagon     14"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "polygons_data_frame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Sides</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Decagon</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Dodecagon</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Hendecagon</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Heptagon</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Hexagon</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Name  Sides\n",
       "7     Decagon     10\n",
       "9   Dodecagon     12\n",
       "8  Hendecagon     11\n",
       "4    Heptagon      7\n",
       "3     Hexagon      6"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "polygons_data_frame.sort_values('Name').head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "polygons_data_frame['Length of Name'] = polygons_data_frame['Name'].apply(len) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# polygons_data_frame['Length of Name'] = polygons_data_frame['Name'].apply(lambda n: len(n)**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Sides</th>\n",
       "      <th>Length of Name</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Hexagon</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Octagon</td>\n",
       "      <td>8</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Nonagon</td>\n",
       "      <td>9</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Decagon</td>\n",
       "      <td>10</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Triangle</td>\n",
       "      <td>3</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Pentagon</td>\n",
       "      <td>5</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Heptagon</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Dodecagon</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Hendecagon</td>\n",
       "      <td>11</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Tridecagon</td>\n",
       "      <td>13</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>Tetradecagon</td>\n",
       "      <td>14</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Quadrilateral</td>\n",
       "      <td>4</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             Name  Sides  Length of Name\n",
       "3         Hexagon      6               7\n",
       "5         Octagon      8               7\n",
       "6         Nonagon      9               7\n",
       "7         Decagon     10               7\n",
       "0        Triangle      3               8\n",
       "2        Pentagon      5               8\n",
       "4        Heptagon      7               8\n",
       "9       Dodecagon     12               9\n",
       "8      Hendecagon     11              10\n",
       "10     Tridecagon     13              10\n",
       "11   Tetradecagon     14              12\n",
       "1   Quadrilateral      4              13"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "polygons_data_frame.sort_values('Length of Name')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Comparing apply's performance to vectorizatopn "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "# s = pd.Series(['hello world' for i in range(100000)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# %timeit -n100 s.str.len()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# %timeit -n100 s.apply(lambda x: len(x))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Scatter Plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f8110104278>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "polygons_data_frame.plot(\n",
    "    title='Sides vs Length of Name',\n",
    "    kind='scatter',\n",
    "    x='Sides',\n",
    "    y='Length of Name',\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/tarek/anaconda3/envs/scikitbook/lib/python3.6/site-packages/ipykernel_launcher.py:11: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
      "  # This is added back by InteractiveShellApp.init_path()\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(12, 6));\n",
    "\n",
    "polygons_data_frame.plot(\n",
    "    title='Sides vs Length of Name',\n",
    "    kind='scatter',\n",
    "    x='Sides',\n",
    "    y='Length of Name',\n",
    "    ax=ax,\n",
    ")\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Sides</th>\n",
       "      <th>Length of Name</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Dodecagon</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Hendecagon</td>\n",
       "      <td>11</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Pentagon</td>\n",
       "      <td>5</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Name  Sides  Length of Name\n",
       "9   Dodecagon     12               9\n",
       "8  Hendecagon     11              10\n",
       "2    Pentagon      5               8"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "polygons_data_frame.sample(n=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
